1. Field of the Invention
The present invention relates generally to data communication across a decentralized network of computing systems.
2. Description of the Related Art
A decentralized computing environment is defined by a number of computing systems interconnected to communicate with one another, wherein each computing system can perform both client and server functions. A peer-to-peer (P2P) network represents a decentralized computing environment in which each computing system within the P2P network is defined as a peer of every other computing system within the network. For discussion purposes, each peer computing system within the P2P network is referred to as a node. Each node within the P2P network is defined to have substantially equivalent computing capability. Additionally, each node within the P2P network is configured to execute software having substantially equivalent functionality. Therefore, each node is enabled to act as both a provider and a user of data and services across the P2P network.
In the P2P network, a node may be responsible for producing and providing, i.e., publishing, a resource for use by other nodes within the P2P network. Conventionally, the node publishing the resource is responsible for providing notifications associated with the resource to the other nodes within the P2P network. For example, service software executing across the various nodes of the P2P network can operate to allow a number of nodes to become aware of a revision to a particular resource produced by a particular node. Once the particular resource is revised, the particular node becomes responsible for distributing the revised resource across the P2P network to each node that submits a request for the resource revision.
In a situation where a significant number of nodes submit requests for a particular resource, or revision thereof, the node responsible for producing and providing the resource can become overloaded with resource distribution responsibility. Additionally, if a node is responsible for producing and providing multiple resources, combined requests for the multiple resources can result in overwhelming resource distribution responsibility for the responsible node. When a particular node in the P2P network becomes overwhelmed with resource production and distribution responsibility, the distributed characteristics of the P2P network become more centralized. Furthermore, since efficient communication within the P2P network is dependent on the ability of nodes to function equivalently as both clients and servers, centralization of the P2P network resulting from unbalanced resource responsibility is detrimental to overall P2P network performance.